package com.wn.common.net

import com.wn.common.net.support.IHttpCallback

/**
 * @Author: wn
 * @Date: 2023/2/10 17:06
 * @Description: 网络请求接口
 */
interface HttpApi {
  /**
   * get异步请求
   * @param params Map<String, Any>  请求参数
   * @param url String               请求地址
   * @param callback IHttpCallback   请求回调
   */
  fun get(params: Map<String, Any>, url: String, callback: IHttpCallback)

  /**
   * get同步请求
   * @param params Map<String, Any>
   * @param url String
   * @return Any?
   */
  fun getSync(params: Map<String, Any>, url: String): Any? = Any()

  /**
   * post异步请求
   * @param body Any                 请求参数
   * @param url String               请求地址
   * @param callback IHttpCallback   请求回调
   */
  fun post(body: Any, url: String, callback: IHttpCallback)

  /**
   * post同步请求
   * @param body Any
   * @param path String
   * @return Any?
   */
  fun postSync(body: Any, path: String): Any? = Any()

  /**
   * 取消请求
   * @param tag Any    通过 tag取消
   */
  fun cancelCall(tag: Any)

  /**
   * 取消所有请求
   */
  fun cancelAllCall()
}
